home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1985-06-04 | 5.0 KB | 165 lines |
- 90 REM **** CPASUBS ****
- 92 CLOSE
- 93 T1$="Project: \ \ File: \ \"
- 94 T2$="Time Period Units: \ \ Subcontractors: ## Start Date: \ \"
- 95 W6$="## \ \ ## \ \ ## \ \"
- 110 DEFINT B-Z:DEFSNG A
- 112 DIM X$(12),R6$(500)
- 114 FOR I=1 TO 12
- 116 READ X$(I)
- 118 NEXT I
- 120 DATA "JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"
- 122 DIM S(500),F(500),D$(500),D(500),O2(500)
- 124 DIM A(1500),A3(100),B(500),S$(48),EF(500),ES(500),LS(500),LF(500)
- 128 B4=VAL(MID$(DATE$,1,2))
- 130 B5=VAL(MID$(DATE$,4,2))
- 132 B6=VAL(MID$(DATE$,9,2))
- 150 GOSUB 5000 'READ INPUT FILE
- 200 GOSUB 9000 'READ SORT FILE
- 300 GOSUB 4800 'READ SUBCONTRACTOR FILE
- 320 GOSUB 8000 'ReAD HOLIDAY FILE
- 350 PRINT "**** FIGURING DAYS - SHOULD TAKE";INT(C3/6);"SECONDS IN REGULAR BASIC ****"
- 400 GOSUB 7000 'FIGURE DAYS WITH MESSAGE
- 500 GOSUB 5500:GOSUB 6000 'SET UP SCREEN WITH CODES
- 600 LOCATE 5,1:INPUT "Enter Subcontractor code (0 to exit) ";C
- 610 IF C=0 THEN CLS:CHAIN "CPAMENU"
- 620 IF C>NSBC THEN BEEP:GOTO 600
- 630 K$=LEFT$(S$(C),3)
- 640 IF K$="SBC" OR K$="HOL" OR K$="CPM" THEN K$=LEFT$(K$,2)+"Z"
- 700 H$=F$+"."+K$
- 710 LOCATE 7,1:PRINT "Output File is ";H$;" O.K.(Y/N) ";:INPUT Q$
- 720 IF LEFT$(Q$,1)<>"N" THEN 750
- 730 LOCATE 9,1:INPUT "Enter new output filename ";H$
- 740 REM GOSUB 10000 'TEST FILE NAME
- 750 OPEN H$ FOR OUTPUT AS #2
- 1250 IF LEN(P$)>60 THEN P1$=LEFT$(P$,60) ELSE P1$=P$
- 1260 T4=INT((118-52-LEN(P1$))/2)
- 1270 PRINT #2,TAB(T4);"CRITICAL PATH ANALYSIS FOR: ";P1$;" RUN DATE: ";X$(B4);B5;", 19";RIGHT$(STR$(B6),2)
- 1280 PRINT #2,G9$
- 1290 T4=((120-15-LEN(T6$))/2)
- 1300 PRINT #2,TAB(T4);"TIME PERIOD = ";T6$
- 1310 PRINT #2,G9$
- 1320 W4$=" DESCRIPTION "
- 1330 W$="ACTIVITY"+W4$+"FROM TO EST. ACTUAL EARLY LAST EARLY LAST FLOAT C REPORT SUBCONTRACTOR"
- 1340 W1$="NODE NODE TIME TIME START START FINISH FINISH TIME P FINISH NAME"
- 1350 PRINT #2,W$
- 1360 PRINT #2,TAB(42);W1$
- 1370 PRINT #2,G9$
- 1380 S4$="\ \"
- 1390 S5$=" \ \ \ \ "
- 1400 S$=S4$+" #### #### #### #### "+S5$+S5$+"#### ! \ \ \ \"
- 1410 S1$=S4$+" , #### , #### , #### , #### , #### , #### , #### , #### , #### , \ \ , ## "
- 1420 FOR I=1 TO N
- 1430 IF B(I)<>C THEN 1690 'SORT BY SUBCONTRACTOR
- 1440 IF T7=1 THEN A7=LF(I)+1 ELSE A7=A(LF(I)+1)
- 1460 GOSUB 7550
- 1470 R4$=P6$
- 1480 IF T7=1 THEN A7=ES(I)+1 ELSE A7=A(ES(I)+1)
- 1500 GOSUB 7550
- 1510 R1$=P6$
- 1520 IF T7=1 THEN A7=LS(I)+1 ELSE A7=A(LS(I)+1)
- 1540 GOSUB 7550
- 1550 R2$=P6$
- 1560 IF T7=1 THEN A7=EF(I)+1 ELSE A7=A(EF(I)+1)
- 1580 GOSUB 7550
- 1590 R3$=P6$
- 1650 IF R6$(I)="0" THEN R6$(I)=" "
- 1660 IF LS(I)-ES(I)=0 THEN G1$="*" ELSE G1$=" "
- 1670 PRINT #2,USING S$;D$(I),S(I),F(I),O2(I),D(I),R1$,R2$,R3$,R4$,LS(I)-ES(I),G1$,R6$(I),S$(B(I))
- 1690 NEXT I
- 1700 CLOSE #2
- 1710 LOCATE 9,1:PRINT "**** ";H$;" CREATED ****"
- 1712 FOR KR=1 TO 750:KR$="KRISTY":NEXT
- 1714 LOCATE 7,1:PRINT SPACE$(40):LOCATE 9,1:PRINT SPACE$(35)
- 1716 LOCATE 5,40:PRINT " "
- 1718 GOTO 600
- 4800 ON ERROR GOTO 4900
- 4805 OPEN F$+".SBC" FOR INPUT AS #1
- 4810 I=0
- 4820 I=I+1
- 4830 IF EOF(1) THEN 4860
- 4840 INPUT #1,S$(I)
- 4850 GOTO 4820
- 4860 PRINT "**** FILE ";F$;".SBC READ -";I-1;"SUBCONTRACTORS READ ****"
- 4865 NSBC=I-1
- 4870 CLOSE #1:RETURN
- 4900 PRINT "**** NO SUBCONTRACTOR FILE - CONTINUING ****":NSBC=0:RESUME 4870
- 5000 REM **** READING IN ALREADY CREATED INPUT FILE ******************
- 5010 INPUT "Enter the name of the input file [.CPM] ";G$
- 5015 IF G$="Q" OR G$="QUIT" THEN CHAIN "CPAMENU"
- 5020 P=INSTR(1,G$,"."):IF P<>0 THEN F$=LEFT$(G$,INSTR(1,G$,".")-1) ELSE F$=G$
- 5030 IF LEN(F$)>8 THEN PRINT "**** NOT A VALID PCPM FILE ****":BEEP:GOTO 5010
- 5035 ON ERROR GOTO 5300
- 5037 G$=F$+".CPM"
- 5040 OPEN G$ FOR INPUT AS #3
- 5050 INPUT #3,P$,T6$,DA$
- 5150 CLOSE #3
- 5160 PRINT " **** INPUT FILE READ ****"
- 5170 RETURN
- 5300 PRINT "**** FILE DOES NOT EXIST - TRY AGAIN ****":BEEP:RESUME 5000
- 5500 CLS:COLOR 15,0,0:PRINT USING T1$;P$,G$:PRINT USING T2$;T6$,NSBC,DA$:COLOR 7,0,0:RETURN
- 6000 REM PRINT SUBCONTRACTOR CODES TO RIGHT OF INPUT SCREEN
- 6005 LOCATE 4,49:COLOR 15,0:PRINT "SUBCONTRACTOR/COMMENT CODES":COLOR 7,0
- 6010 FOR I=1 TO 16:LOCATE I+4,44:PRINT USING W6$;I,S$(I),I+16,S$(I+16),I+32,S$(I+32):NEXT I
- 6020 RETURN
- 7000 REM ** CREATE ARRAY OF MMDDYYS ******************************
- 7010 REM IF A(1)=0 THEN A(1)=M6*10000+D6*100+Y6
- 7020 D1=D1+1
- 7030 IF D1>C3+1 THEN RETURN
- 7040 A8=A8+1
- 7050 GOSUB 7130
- 7060 IF LEFT$(T6$,3)="CAL" THEN 7070 ELSE IF D4=6 OR D4=7 THEN 7040
- 7070 O8=0
- 7080 GOSUB 7240
- 7090 IF O8=1 THEN 7040
- 7100 A(D1)=M5*10000+D5*100+Y5
- 7110 GOTO 7020
- 7120 REM ** CONVERT CENTURY DAY TO MM, DD, YY **************************
- 7130 T9=INT(A8/1461)
- 7140 Y5=INT((A8-T9+364)/365)
- 7150 Y4=A8-INT((Y5-1)*1461/4)
- 7160 L8=2
- 7170 IF Y5/4=INT(Y5/4) THEN L8=1
- 7180 T9=Y4
- 7190 IF T9>61-L8 THEN T9=T9+L8
- 7200 M5=INT((T9*9+269)/275)
- 7210 D5=T9-INT(M5*275/9)+30
- 7220 D4=A8-INT(A8/7)*7+1
- 7230 RETURN
- 7240 FOR J=1 TO H9 '**** HOLIDAY OR NOT ***********************************
- 7250 IF A8=A3(J) THEN O8=1
- 7260 NEXT J
- 7270 RETURN
- 7550 P6$=STR$(A7)
- 7560 IF T7=1 THEN 7600
- 7570 IF LEN(P6$)=6 THEN P6$=" "+P6$
- 7580 U9=VAL(LEFT$(P6$,3))
- 7590 P6$=X$(U9)+RIGHT$(P6$,4)
- 7600 RETURN
- 8000 ON ERROR GOTO 8200
- 8010 OPEN F$+".HOL" FOR INPUT AS #1
- 8020 J=0
- 8030 J=J+1
- 8040 IF EOF(1) THEN 8100
- 8050 INPUT #1,A3(J)
- 8060 GOTO 8030
- 8100 H9=J-1 'NUMBER OF HOLIDAYS
- 8110 CLOSE #1:RETURN
- 8200 PRINT "**** NO HOLIDAY FILE - CONTINUING ****":RESUME 8110
- 9000 REM READING IN SORT FILE
- 9010 ON ERROR GOTO 9200 'NO SORT FILE
- 9020 OPEN F$+".LGS" FOR INPUT AS #1
- 9030 INPUT #1,A8,A(1),C3
- 9040 I=0
- 9050 I=I+1
- 9060 IF EOF(1) THEN 9100
- 9070 INPUT #1,D$(I),S(I),F(I),O2(I),D(I),ES(I),LS(I),EF(I),LF(I),FL,R6$(I),B(I)
- 9075 IF I MOD 10=0 THEN PRINT I;
- 9080 GOTO 9050
- 9100 N=I-1
- 9105 PRINT "**** LGS FILE READ ****"
- 9110 CLOSE #1:RETURN
- 9200 PRINT "FILE ";F$;".LGS MUST BE CREATED BY OPTION 5 FIRST AND EXIST ON DISK****":BEEP:CHAIN "CPAMENU"
- 10000 REM test file name
- 10010 RETURN
-